python 图像的旋转与仿射变换

python代码实现,需要输入原图片和旋转角度。

def rotate(img, angle):#输入原图片和需要旋转的角度
    # 旋转图片
    (h, w) = img.shape[:2]  # 获得图片高,宽
    center = (w // 2, h // 2)  # 获得图片中心点
    #求旋转矩阵
    img_ratete = cv2.getRotationMatrix2D(center, angle, 1)
    #求旋转图片
    rotated = cv2.warpAffine(img, img_ratete, (w, h))
    return rotated

主要用到了opencv自带的两个函数:
1、主要用于获得图像绕着某一点的旋转矩阵 。

c++ : Mat cv::getRotationMatrix2D(Point2f center, double angle, double scale)
python: cv2.getRotationMatrix2D(center,angle,scale)
参数详解:
Point2f center:表示旋转的中心点
double angle:表示旋转的角度
double scale:图像缩放因子

2、仿射变换,warpAffine可以实现一些简单的重映射。

cpp
c++:void cv::warpAffine(InputArray src,
        OutputArray dst,
        InputArray M,
        Size dsize,
        int flags = INTER_LINEAR,
        int borderMode = BORDER_CONSTANT,
        const Scalar &borderValue = Scalar() 
    )
python:cv2.warpAffine(img,M,(rows,cols),flags=cv2.INTER_,borderMode=cv2.BORDER_REFLECT,borderValue=(255,255,255))

src: 输入图像 
dst: 输出图像,尺寸由dsize指定,图像类型与原图像一致 
M: 变换矩阵 
dsize: 指定图像输出尺寸 
flags: 插值算法标识符,有默认值INTER_LINEAR,如果插值算法为WARP_INVERSE_MAP, warpAffine函数使用如下矩阵进行图像转换 
borderMode: 边界像素模式
borderValue:边界填充值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值